4.4.2 提交docker任务
一、步骤概述:
1. 把搭建好环境的docker image上传到本地仓库:10.120.24.15:5000/jhinno
2. 提交LSF作业,在HCP节点上拉下之前的image,并在HPC节点上运行这个docker
3. 通过 docker cp传入运行时需要的文件和传出结果
二、例子说明:
1.假设已经docker commit做好了一个本地的image: gem5-test:v1,需要上传到本地仓库做tag:
docker tag gem5-test:v1 10.120.24.15:5000/jhinno/gem5-test:v1
上传:
docker push 10.120.24.15:5000/jhinno/gem5-test:v1
2.编写让docker运行的作业gem5.sh,以及提交给lsf的作业:
2.1 本次作业进行简单的gem5编译:run.sh
cd /hpc/home/simonyjhe/docker-data
vim run.sh
#!/bin/bash
cd /opt/gem5
scons build/X86/gem5.opt -j 100 /opt/mydata/output.log 2>&1
让gem5.sh可执行:chmod a+x run.sh
2.2 编写lsf的作业myjob.lsf:
#BSUB -J gem5-test-job1
#BSUB -n 56
#BSUB -q gpu
#BSUB -Is
docker pull 10.120.24.15:5000/jhinno/gem5-test:v1
docker run -it --rm --name gem5-yjhe -v /hpc/home/simonyjhe/docker-data:/opt/mydata 10.120.24.15:5000/jhinno/gem5-test:v1 /opt/mydata/run.sh
说明:
#BSUB部分是LSF job的参数: 申请56核心,放到gpu队列,是一个交互的作业
docker部分:pull -> docker run
-it: 交互式,带终端
--rm: container退出后,删除container。image不会被删。
-v /hpc/home/simonyjhe/tutorials/docker/gem5:/opt/mydata : 将工作目录映射到container中 /opt/mydata。在container中将需要的数据写入这个目录,譬如本次想保存的结果是output.log
2.3. 提交作业:bsub < myjob.lsf &